Skip to content

Updated section on semantic interoperability (issues #1217 and #1210) #1420

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Feb 10, 2024

Conversation

iherman
Copy link
Member

@iherman iherman commented Jan 30, 2024

This PR is an attempt to jointly cover issues #1217 and #1210, by a thorough re-write of §5.3.1 on Semantic Interoperability.

This is a normative section, ie, special attention should be given to the usage of the MUST, SHOULD, etc, keywords. My general approach was to reduce the MUST to the strict minimum, but reviewers might differ.


Preview | Diff

@iherman iherman self-assigned this Jan 30, 2024
@iherman iherman requested review from TallTed and dlongley January 30, 2024 08:22
@iherman iherman changed the title Updated sectio on semantic interoperability (issues #1217 and #1210) Updated section on semantic interoperability (issues #1217 and #1210) Jan 30, 2024
Copy link
Member

@TallTed TallTed left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Editorial...

Copy link
Contributor

@dlongley dlongley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know about the testability of all the MUSTs here and whether, on account of that, they should instead be "expectations" or recommendations.

@iherman
Copy link
Member Author

iherman commented Jan 31, 2024

I don't know about the testability of all the MUSTs here and whether, on account of that, they should instead be "expectations" or recommendations.

The change could be to use SHOULD/RECOMMENDED everywhere.

However. "Testability" in the W3C CR setting is a very general concept; the goal is to prove that a feature is implementable by two, independent implementations (to ensure interoperability). From a CR point of view, this does not mean that each MUST should have a running test program. (The usual counterexample is the "testing" of a vocabulary, which means that the terms are in use by at least two different implementations.) Taking this view, the few MUST statements in this section are easily testable: it requires at least two VC applications that define their own application specific terms, and that abide to these requirements. Isn't that feasible?

(Personally, I would prefer, from the spec's point of view, to keep those MUST-s.)

@iherman
Copy link
Member Author

iherman commented Jan 31, 2024

@TallTed:

Editorial...

All adopted.

@msporny msporny added the normative The PR is a normative change to the CR specification label Feb 4, 2024
index.html Outdated
Comment on lines 3091 to 3092
Human-readable documentation MUST be published, describing the semantics of and
the constraints on the use of each term.
Copy link
Member

@msporny msporny Feb 4, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section is turning into a "Requirements for Vocabulary Document Authors", which I thought we were going to avoid writing as of last week. IOW, this PR feels like it's trying to also address issue #1410

That said, this isn't a bad list (although, some of it feels a bit heavy handed)...

index.html Outdated
Comment on lines 3108 to 3110
Furthermore, a machine-readable description (that is, a
<a data-cite="JSON-LD11#dfn-context">JSON-LD Context document</a>) MUST be published at the URL specified
in the `@context` [=property=] for the vocabulary.
Copy link
Member

@msporny msporny Feb 4, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't need to say this. The document will be non-conformant if this is not done.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure I understand this remark. Yes, the document will be non conformant, because the JSON-LD processor will fail if the @context value does not dereference. But if the user does not publish a context document nor does he/she put a @context property for the vocabulary, the document will pass, thanks to the @vocab in the core context...

index.html Outdated
Comment on lines 3111 to 3112
This context MUST map each term to its corresponding URL, possibly accompanied by further
constraints like the type of the property value. A human-readable document describing the expected order of values for
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this statement go against the usage of @vocab? It's not technically true, is it, that a context MUST map each term to its corresponding URL (because if it doesn't, the issuer-specific vocabulary statement takes over).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm. What I wanted to say is that the context defined for the vocabulary MUST map each term in this vocabulary to the corresponding URL (plus define constraints). This pre-empts the effect of @vocab. I am not sure what the problem is...

Copy link
Member

@msporny msporny left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few questions and changes requested. Overall, we should decide if we're also addressing issue #1410 with this PR (as we're dangerously close to doing so, IMHO).

Some of the normative statements feel a bit heavy-handed (and untestable -- or should we test them?).

@iherman
Copy link
Member Author

iherman commented Feb 5, 2024

Some of the normative statements feel a bit heavy-handed (and untestable -- or should we test them?).

See my comments in #1420 (comment).

If we do have two "properly defined" vocabularies around as part of the implementations, then, CR-wise, we are o.k. No reason for explicit "tests" imho.

@iherman
Copy link
Member Author

iherman commented Feb 5, 2024

Overall, we should decide if we're also addressing issue #1410 with this PR (as we're dangerously close to doing so, IMHO).

We are not "dangerously close": we are covering it. A 'type' is part of a vocabulary, whether new properties are defined or not.

I am not sure whether we need to make it explicit in this text, and how. Maybe by defining (in the terms' section) what we mean by 'vocabulary': something that may be as simple as the definition of new types, and as complex as defining whole new properties.

@iherman
Copy link
Member Author

iherman commented Feb 7, 2024

The issue was discussed in a meeting on 2024-02-07

  • no resolutions were taken
View the transcript

3.4. Updated section on semantic interoperability (issues #1217 and #1210) (pr vc-data-model#1420)

See github pull request vc-data-model#1420.

Manu Sporny: A number of PRs for VCDM. Huge thanks to ivan for raising a number of them. One we should talk about today (1420). Ivan raised.
… a question remains. We just entered CR. I think this PR is normative. It does not impact software implementations but does impact vocabulary. Wonder if this triggers a second CR.

Ivan Herman: AFAIK, a new draft with normative changes are OK provided that at some point in time we publish a snapshot with these changes. I don't think there is any problem with these few normative changes here. We know we will republish a snapshot sometime in May. I think we are fine.

Brent Zundel: +1 to Ivan.

Manu Sporny: That is my read as well. I've started tracking this with a normative label so we know we have done a second CR triggering thing and that we can summarize these changes. If you raise a PR, please try to classify as Editorial or Normative.
… also keep in mind that any normative change needs to be communicated with the test suite workers.

Ivan Herman: If a change is normative in a serious way, then the editor of the PR should add an item to the list of changes at the end of the document or we will forget them.

Manu Sporny: yes, +1 to that.

Brent Zundel: this is something reviews should remind when examining PRs.
… Any other core data model status?

Manu Sporny: A number of editorial changes are out there and folks should pay attention.

@msporny msporny force-pushed the iherman-ld-principles-and-vocab branch from 3f5c4d6 to 83dfad7 Compare February 10, 2024 20:48
@msporny
Copy link
Member

msporny commented Feb 10, 2024

Normative, multiple reviews, changes requested and made, no objections, merging.

@msporny
Copy link
Member

msporny commented Feb 10, 2024

BTW, I think this PR just created a new conformance class for vocabulary documents in the spec... If you agree, @iherman, we might want to add that conformance class and point it to the semantic interop section. I'll also note that I still think that this is a partial solution for #1410 because we don't add the text that I believe @jyasskin was looking for.

@msporny msporny merged commit f6cbd67 into main Feb 10, 2024
@msporny msporny deleted the iherman-ld-principles-and-vocab branch February 10, 2024 20:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
normative The PR is a normative change to the CR specification
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants